package com.yanfan.access.domain;

import lombok.Data;

import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yanfan.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.FieldFill;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 门禁进出记录对象 nj_access_records
 *
 * @author genluo
 * @date 2024-10-29
 */

@Data
public class NjAccessRecords implements Serializable{

private static final long serialVersionUID=1L;

    /**
     * 卡号
     */
    @Excel(name = "卡号")
    @NotBlank(message = "卡号不能为空")
    private String cardNumber;

    /**
     * 卡片状态
     */
    @Excel(name = "卡片状态")
    private Long cardStatus;

    /**
     * 卡片类型
     */
    @Excel(name = "卡片类型")
    private Long cardType;

    /**
     * 通道编码
     */
    @Excel(name = "通道编码")
    private String channelCode;

    /**
     * 通道名称
     */
    @Excel(name = "通道名称")
    private String channelName;

    @TableField(exist = false)
    private String[] deptNameList;

    @TableField(exist = false)
    private String[] deptFullPathList;

    /**
     * 记录创建时间
     */
    @Excel(name = "记录创建时间")
    private String createTime;

    /**
     * 部门名称
     */
    @Excel(name = "部门名称")
    private String deptName;

    /**
     * 设备编码
     */
    @Excel(name = "设备编码")
    private String deviceCode;

    /**
     * 设备名称
     */
    @Excel(name = "设备名称")
    private String deviceName;

    /**
     * 进出标识
     */
    @Excel(name = "进出标识")
    private Long enterOrExit;

    /**
     * 唯一标识符
     */
    @Excel(name = "唯一标识符")
    @TableId(value = "id" , type = IdType.ASSIGN_ID) // 字符串类型使用雪花算法
    private String id;

    /**
     * 图像类型
     */
    @Excel(name = "图像类型")
    private Long imageType;

    /**
     * 口罩状态
     */
    @Excel(name = "口罩状态")
    private Long maskState;

    /**
     * 开门结果
     */
    @Excel(name = "开门结果")
    private Long openResult;

    /**
     * 开门方式
     */
    @Excel(name = "开门方式")
    private Long openType;

    /**
     * 组织编码
     */
    @Excel(name = "组织编码")
    private String orgCode;

    /**
     * 组织名称
     */
    @Excel(name = "组织名称")
    private String orgName;

    /**
     * 证件号码
     */
    @Excel(name = "证件号码")
    private String paperNumber;

    /**
     * 证件类型
     */
    @Excel(name = "证件类型")
    private String paperType;

    /**
     * 人员编码
     */
    @Excel(name = "人员编码")
    private String personCode;

    /**
     * 人员ID
     */
    @Excel(name = "人员ID")
    private Long personId;

    /**
     * 人员姓名
     */
    @Excel(name = "人员姓名")
    private String personName;

    /**
     * 读卡器编码
     */
    @Excel(name = "读卡器编码")
    private String readerCode;

    /**
     * 记录图像路径
     */
    @Excel(name = "记录图像路径")
    private String recordImage;

    /**
     * 记录图像URL
     */
    @Excel(name = "记录图像URL")
    private String recordImageUrl;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remark;

    /**
     * 刷卡时间
     */
    @Excel(name = "刷卡时间")
    private String swingTime;


}
